package com.dhcc.DRGsHosp.application.impl;

import java.util.List;
import java.util.Set;

import javax.inject.Named;

import org.dayatang.querychannel.JdbcTemplateObj;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;

import com.dhcc.DRGsHosp.application.MrqViolationApplication;
import com.dhcc.DRGsHosp.core.domain.MrqViolation;

/**
 * 病案首页违规项 的 数据访问层--实体类
 * @ClassName: MrqViolationApplicationImpl  
 * @Description ：    
 * @Date: 2018年7月27日 下午3:08:22  
 * @Author QiaoYiLong 
 * @Version 3.1.1 DHC-DRG
 */
@Named
@Transactional
public class MrqViolationApplicationImpl implements MrqViolationApplication {
	
	@Autowired
	private JdbcTemplateObj jdbcTemplateObj;
	
	/**
	 *  功能描述：依据主键id查找其对应的 病案首页违规项 信息
	 *  @Author QiaoYiLong
	 *  @param id  主键
	 *  @Date:2018年7月27日下午3:10:12
	 */
	@Override
	public MrqViolation getMrqViolation(String id) {
		return MrqViolation.get(MrqViolation.class, id);
	}
	/**
	 *  功能描述：创建一个 病案首页违规项 信息
	 *  @Author QiaoYiLong
	 *  @param id  主键
	 *  @Date:2018年7月27日下午3:10:12
	 */	
	@Override
	public void createMrqViolation(MrqViolation mrqViolation) {
		mrqViolation.save();
	}
	/**
	 *  功能描述：修改一个 病案首页违规项 信息
	 *  @Author QiaoYiLong
	 *  @param id  主键
	 *  @Date:2018年7月27日下午3:10:12
	 */	
	@Override
	public void updateMrqViolation(MrqViolation mrqViolation) {
		mrqViolation.save();
	}
	/**
	 *  功能描述：删除一个 病案首页违规项 信息
	 *  @Author QiaoYiLong
	 *  @Date:2018年7月27日下午3:12:20
	 */
	@Override
	public void removeMrqViolation(MrqViolation mrqViolation) {
		if( mrqViolation != null ){
			mrqViolation.remove();
		}
	}
	/**
	 *  功能描述：删除一个病例ID为pmainIndex 的 病案首页违规项 信息
	 *  @Author QiaoYiLong
	 *  @param pmainIndex 病例ID
	 *  @Date:2018年7月30日下午2:56:19
	 */
	@Override
	public void removeMrqViolationByPmainIndex(String pmainIndex) {
		if( pmainIndex != null && !"".equals(pmainIndex) ){
			String sql = new String("delete from drgs.MRQ_VIOLATION violation where violation.PMAININDEX = '"+pmainIndex+"' ");
			jdbcTemplateObj.update(sql);
		}
	}
	/**
	 *  功能描述：删除多个 病案首页违规项 信息
	 *  @Author QiaoYiLong
	 *  @Date:2018年7月27日下午3:12:49
	 */
	@Override
	public void removeMrqViolations(Set<MrqViolation> mrqViolations) {
		for( MrqViolation mrqViolation : mrqViolations ){
			mrqViolation.remove();
		}
	}
	/**
	 *  功能描述：取得所有的 病案首页违规项 信息
	 *  @Author QiaoYiLong
	 *  @Date:2018年7月27日下午3:13:12
	 */
	@Override
	public List<MrqViolation> findAllMrqViolation() {
		return MrqViolation.findAll(MrqViolation.class);
	}

}
